package me.zhengjie.modules.quartz.domain;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.persistence.*;
import java.io.Serializable;

/**
 *  调用数据库存储过程需要在实体类定义定义
 * name: 在EntityManager中的名字 NamedStoredProcedureQuery使用
 * procedureName: 数据库里存储过程的名字
 * parameters: 使用IN/OUT参数
 *
 * 存储过程使用了注解@NamedStoredProcedureQuery 并绑定到一个JPA表。
 * procedureName是存储过程的名字
 * name是JPA中存储过程的名字
 * 使用注解@StoredProcedureParameter来定义存储过程使用的IN/OU参书
 */

@NamedStoredProcedureQuery(name = "makeOrder",procedureName = "PRC_MAKE_ORDER", resultClasses = { MakeOrder.class },parameters = {
        @StoredProcedureParameter(mode = ParameterMode.IN,name = "IR_BZ",type=String.class),
        @StoredProcedureParameter(mode = ParameterMode.IN,name="IR_CURRENT_DATE",type = String.class),
        @StoredProcedureParameter(mode = ParameterMode.OUT,name = "OR_APPCODE",type=Integer.class),
        @StoredProcedureParameter(mode = ParameterMode.OUT,name = "OR_MESSAGE",type = String.class)
})
@Entity
public class MakeOrder implements Serializable {
    @Id
    public String id;
    public Long OR_APPCODE;
    public String OR_MESSAGE;
}
